آشنائی با پروتكل HTTP ( بخش اول )

در اينترنت همانند ساير شبكه های كامپيوتری از پروتكل های متعدد و با اهداف مختلف استفاده می گردد. هر پروتكل از يك ساختار خاص برای ارسال و دريافت اطلاعات (بسته های اطلاعاتی ) استفاده نموده و ترافيك مختص به خود را در شبكه ايجاد می نمايد . HTTP ( برگرفته از Hyper Text Transfer Protocol ) ، يكی از متداولترين پروتكل های لايه application است كه مسئوليت ارتباط بين سرويس گيرندگان و سرويس دهندگان وب را برعهده دارد .
در ادامه با پروتكل فوق بيشتر آشنا خواهيم شد.

دنيای شبكه های كامپيوتری دارای عمری چند ساله است و بسياری از كاربران ، ضرورت استفاده از شبكه را همزمان با متداول شدن اينترنت در اوايل سال 1990 دريافتند . عموميت اينترنت، رشد و گسترش شبكه های كامپيوتر‌ی را به دنبال داشته است . اينترنت نيز با سرعتی باورنكردنی رشد و امروزه شاهد ايجاد ده ها ميليون وب سايت در طی يك سال در اين عرصه می باشيم .
تمامی وب سايت های موجود بر روی‌ اينترنت از پروتكل HTTP استفاده می نمايند . با اين كه پروتكل HTTP با استفاده از پروتكل های ديگری نظير IP و TCP ماموريت خود را انجام می دهد ، ولی اين پروتكل HTTP است كه به عنوان زبان مشترك ارتباطی بين سرويس گيرنده و سرويس دهنده وب به رسميت شناخته شده و از‌ آن استفاده می گردد . در واقع مرورگر وب صدای خود را با استفاده از پروتكل HTTP به گوش سرويس دهنده وب رسانده و از وی درخواست يك صفحه وب را می نمايد.
به منظور انجام يك تراكنش موفقيت آميز بين سرويس گيرندگان وب ( نظير IE ) و سرويس دهندگان وب ( نظير IIS ) ، به اطلاعات زيادی نياز خواهد بود . پس از handshake پروتكل TCP/IP ، مرورگر اطلاعات گسترده ای را ‌ برای سرويس دهنده وب ارسال می نمايد .
يك بسته اطلاعاتی نمونه در شكل زير نشان داده شده است :

داده مربوط به پروتكل لايه application ( در اين مورد خاص پروتكل HTTP ) ، پس از هدر TCP/IP قرار می گيرد . جدول زير برخی اطلاعات مبادله شده بين سرويس گيرنده و سرويس دهنده وب را نشان می دهد .

عملكرد

نوع اطلاعات

سرويس گيرنده وب يك درخواست GETرا برای سرويس دهنده وب ارسال و از وی درخواست اطلاعاتی را با استفاده از  پروتكل HTTP 1.1 می نمايد.
پروتكل HTTPدارای نسخه شماره يك نيز می باشد كه امروزه عموما" از نسخه فوق استفاده نمی گردد و در مقابل از نسخه 1 . 1 استفاده می شود.

GET /HTTP/1.1

وب سايتی است كه سرويس گيرنده قصد ارتباط با آن را دارد .

Host:
 www.google.ca

به سرويس دهنده وب ، نوع  نرم افزار سرويس گيرنده ( در اين مورد خاص   Mozilla version 5.0 ) و  نوع سيستم عامل نصب شده بر روی كامپيوتر ( در اين مورد خاص Windows version NT 5.1 و يا همان ويندوز XP  ) اعلام می گردد.

User-agent:
 Mozilla/5.0 (Windows; U; Windows NT 5.1;

نوع character setاستفاده شده به سرويس دهنده اعلام می گردد ( در اين مورد خاص از  en:us  و نسخه شماره  10 . 7 . 1  استفاده شده است ) .

en-US; rv: 1.7.10)

نام مرورگر استفاده شده توسط سرويس گيرنده به سرويس دهنده وب اعلام می گردد ( در اين مورد خاص از مرورگر FireFoxاستفاده شده است ) .

Gecko/20050716 Firefox/1.0.6

سرويس گيرنده به سرويس دهنده وب فرمت  اطلاعاتی را كه می تواند دريافت نمايد ، اعلام می نمايد ( در اين مورد خاص هم برای متن و هم برای   application  از فرمت xmlاستفاده می گردد ) . 

Accept:
 text/xml, application/xml, application/xhtml+xml

سرويس گيرنده  به سرويس دهنده نوع فرمت متن دريافتی را اعلام می نمايد ( در اين مورد خاص htmlو يا plaintext) .
همچنين فرمت فايل های گرافيكی ( در اين مورد خاص png. و ساير فرمت های متداول ) نيز اعلام می گردد .

 text/html; q=0.9, text/plain; q=0.8, image/png, */*;q=0.5

ليست character setكه سرويس گيرنده وب قادر به فهم آنان است،  اعلام می گردد ( در اين مورد خاص  ISO-8859 , و يا utf-8  ) .

Accept-Charset:
 ISO-8859-1, utf-8; q=0.7, *;q=0/7

به  سرويس دهنده وب مدت زمان نگهداری  session  اعلام می گردد ( در اين مورد خاص 300 ثانيه ) .
سرويس گيرندگان می توانند با صراحت پايان يك sessionرا اعلام نمايند . در نسخه شماره 1 . 1  پروتكل HTTP، ارتباط و يا اتصال برقرار شده فعال و يا openباقی خواهد ماند تا زمانی كه سرويس گيرنده خاتمه آن را اعلام  و يا مدت زمان حيات آن به اتمام رسيده باشد .
در نسخه شماره يك پروتكل HTTP، پس از هر درخواست و اتمام تراكنش ، ارتباط ايجاد شده غيرفعال و يا closeمی گردد .

Keep-Alive:
 300 Connection: keep-alive

cookie و مقدار مربوطه  به آن اعلام می گردد. كوكی يك متن اسكی فلت می باشد كه اطلاعات متفاوتی را در خود نگهداری می نمايد .
مدت زمان حيات يك كوكی می تواند موقت ( تا زمانی كه مرورگر فعال است ) و يا دائم ( ذخيره بر روی هارد ديسك كامپيوتر  و در يك محدوده زمانی تعريف شده ) باشد .

 Cookie: PREF=ID=01a0822454acb293: LD=en:TM=1121638094�..


User agent نوع مرورگر و سيستم عامل سرويس گيرنده را مشخص می نمايد و اين موضوع می تواند مواد اوليه لازم برای تدارك برخی حملات توسط مهاجمان را تامين نمايد .